McL*_*odx 3 html javascript css iframe widget
我在tradeview(https://www.tradingview.com/widget/ticker/)中使用这个小部件,想知道是否有办法:
我之前没有使用过iFrame,也不确定如何进行自定义或者甚至可能进行自定义.
这是一个达到预期效果的答案:https://codepen.io/epsilon42/pen/BPZgjP/
它主要涉及CSS动画的使用,但也有必要添加一些jQuery来克隆,iframe以便在股票代码运行结束时摆脱差距.由于无法操纵iframe跨域的内容,这是我能想到的唯一方法.
我必须删除asyncTradingView脚本才能$( document ).ready正确触发.
另外需要注意的是,根据您在自动收报机中选择的项目数量,有必要更改CSS中的宽度:
.ticker-canvas {
width: calc((200px * 15) + 2px);
}
Run Code Online (Sandbox Code Playgroud)
15将上述CSS中的值更改为您在脚本中调用的项目数.200px似乎是小部件决定自动删除项目之前可以使用的最小宽度,但是如果需要,使用更高的值似乎没有任何问题.2px是占用小部件任一侧的1px边框.
HTML:
<!-- TradingView Widget BEGIN -->
<div class="ticker-container">
<div class="ticker-canvas">
<div class="tradingview-widget-container">
<div class="tradingview-widget-container__widget"></div>
<script type="text/javascript" src="https://s3.tradingview.com/external-embedding/embed-widget-tickers.js">
{
"symbols": [
{
"title": "S&P 500",
"proName": "INDEX:SPX"
},
{
"title": "Nasdaq 100",
"proName": "INDEX:IUXX"
},
{
"title": "EUR/USD",
"proName": "FX_IDC:EURUSD"
},
{
"title": "BTC/USD",
"proName": "BITFINEX:BTCUSD"
},
{
"title": "ETH/USD",
"proName": "BITFINEX:ETHUSD"
},
{
"description": "Apple",
"proName": "NASDAQ:AAPL"
},
{
"description": "Berkshire",
"proName": "NYSE:BRK.A"
},
{
"description": "Microsoft",
"proName": "NASDAQ:MSFT"
},
{
"description": "Google",
"proName": "NASDAQ:GOOG"
},
{
"description": "Tesla",
"proName": "NASDAQ:TSLA"
},
{
"description": "Amazon",
"proName": "NASDAQ:AMZN"
},
{
"description": "AUD/USD",
"proName": "OANDA:AUDUSD"
},
{
"description": "Sony",
"proName": "NYSE:SNE"
},
{
"description": "BHP",
"proName": "BHP"
},
{
"description": "Telstra",
"proName": "TLS"
}
],
"locale": "en"
}
</script>
</div>
</div>
</div>
<!-- TradingView Widget END -->
<div class="content">
<p>Some text.</p>
</div>
Run Code Online (Sandbox Code Playgroud)
CSS:
body {
margin: 0;
}
.content {
padding: 10px 20px;
}
.content p {
font-family: sans-serif;
}
/******/
.ticker-container {
width: 100%;
overflow: hidden;
}
.ticker-canvas {
width: calc((200px * 15) + 2px);
/*
200px = minimum width of ticker item before widget script starts removing ticker codes
15 = number of ticker codes
2px = accounts for 1px external border
*/
-webkit-animation-iteration-count: infinite;
animation-iteration-count: infinite;
-webkit-animation-timing-function: linear;
animation-timing-function: linear;
-webkit-animation-name: ticker-canvas;
animation-name: ticker-canvas;
-webkit-animation-duration: 20s;
animation-duration: 20s;
}
.ticker-canvas:hover {
animation-play-state: paused
}
@-webkit-keyframes ticker-canvas {
0% {
-webkit-transform: translate3d(0, 0, 0);
transform: translate3d(0, 0, 0);
visibility: visible;
}
100% {
-webkit-transform: translate3d(-100%, 0, 0);
transform: translate3d(-100%, 0, 0);
}
}
@keyframes ticker-canvas {
0% {
-webkit-transform: translate3d(0, 0, 0);
transform: translate3d(0, 0, 0);
visibility: visible;
}
100% {
-webkit-transform: translate3d(-100%, 0, 0);
transform: translate3d(-100%, 0, 0);
}
}
.tradingview-widget-container {
position: relative;
}
.tradingview-widget-container iframe {
position: absolute;
top: 0;
}
.tradingview-widget-container iframe:nth-of-type(2) {
left: 100%;
}
Run Code Online (Sandbox Code Playgroud)
JS:
$( document ).ready(function() {
$( ".tradingview-widget-container iframe" ).clone().appendTo( ".tradingview-widget-container" );
});
Run Code Online (Sandbox Code Playgroud)
你有一个错误的问题,因为这个错误的答案.正确的问题如下:
我...想知道是否有办法:
- 使滚动条滚动(iFrame滚动=是)
- 重新调整小部件的大小.
是的,可以使用滚动条滚动和小部件的重新调整大小,但我们不需要这样做iFrame scrolling=yes.
而不是这个,我们iframe用a div和resize滚动这个div元素.换句话说,您可以在交易视图自动收报机小部件网站上找到此信息:
描述说我可以使用Ticker Widget显示最多15个符号.为什么我只看到5?
Ticker小部件默认使用Autosize参数.这意味着它接受父元素的宽度.我们的演示页面足够宽,只显示5个符号.您应该使父元素更宽以查看所有符号.
代码示例
function resizeWidget()
{
var containerTradingview = document.querySelector('#container-tradingview');
containerTradingview.style.maxWidth = '630px';
}
Run Code Online (Sandbox Code Playgroud)
<center>
<div id="container-tradingview" style="max-width:420px;height:90px;overflow-x:auto;overflow-y:hidden">
<div style="width:2100px">
<!-- TradingView Widget BEGIN -->
<div class="tradingview-widget-container">
<div class="tradingview-widget-container__widget"></div>
<div class="tradingview-widget-copyright">
<a href="https://www.tradingview.com" rel="noopener" target="_blank">
<span class="blue-text">Quotes</span>
</a> by TradingView
</div>
<script type="text/javascript" src="https://s3.tradingview.com/external-embedding/embed-widget-tickers.js" async>
{
"symbols":
[
{"title": "S&P 500", "proName": "INDEX:SPX"},
{"title": "Nasdaq 100", "proName": "INDEX:IUXX"},
{"title": "EUR/USD", "proName": "FX_IDC:EURUSD"},
{"title": "BTC/USD", "proName": "BITFINEX:BTCUSD"},
{"title": "ETH/USD", "proName": "BITFINEX:ETHUSD"},
{"title": "Groupon Inc.", "proName": "NASDAQ:GRPN"},
{"title": "Walmart Inc.", "proName": "NYSE:WMT"},
{"title": "Amazon Inc.", "proName": "NASDAQ:AMZN"},
{"title": "Yelp Inc.", "proName": "NYSE:YELP"},
{"title": "eBay Inc", "proName": "NASDAQ:EBAY"}
],
"locale": "en"
}
</script>
</div>
<!-- TradingView Widget END -->
</div></div>
<br>
<input type="button" value="Resize widget" onclick="resizeWidget()">
</center>
Run Code Online (Sandbox Code Playgroud)
您无法在SO上执行此小部件,因为此代码段中的iframe位于沙箱中.
请在codepen.io上查看此示例.
| 归档时间: |
|
| 查看次数: |
1971 次 |
| 最近记录: |