[英]How to make embedded chart responsive
我已將 Tradingview 中的股票圖表嵌入到我的網站中,但我無法使其響應(尤其是寬度)。 當頁面縮小時,圖表開始移出屏幕。 這是代碼:
<div class="tradingview-widget-container">
<div id="tradingview_8e656"></div>
<div class="tradingview-widget-copyright"><a href="https://www.tradingview.com/symbols/SP-SPX/" rel="noopener" target="_blank"><span class="blue-text">SPX chart</span></a> by TradingView</div>
<script type="text/javascript" src="https://s3.tradingview.com/tv.js"></script>
<script type="text/javascript">
new TradingView.widget({
"height": 610,
"symbol": "SP:SPX",
"interval": "D",
"timezone": "Etc/UTC",
"theme": "Light",
"style": "1",
"locale": "en",
"toolbar_bg": "#f1f3f6",
"enable_publishing": false,
"hide_side_toolbar": false,
"allow_symbol_change": true,
"container_id": "tradingview_8e656"
});
</script>
</div>
我嘗試將寬度單位更改為rem
和%
(因為我想他們使用px
)但它沒有用。 我還嘗試完全擦除高度和寬度並添加"autosize": true
。 然后我想可能是我沒有正確編輯它,所以我開始在 W3Schools 中學習 JavaScript 對象。 在那里也找不到信息。
我能想到的最佳解決方案是將overflow
設置為hidden
,但您可以理解這是不對的。 我需要的是諸如“縮小以適應”屬性或以某種方式簡單地編輯 javascript 之類的東西。
我閱讀的其他鏈接(也沒有幫助):
這是我的整個代碼 - 我想要實現的是從導航欄打開圖表(我正在使用引導程序):
<div class="container-fluid sticky-top">
<nav class="navbar navbar-expand-lg" style="background-color:#1B2034">
<img src="media/a1.jpg" style="height:4rem;width:8rem">
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon mb-2"><i class="fa fa-bars fa-2x" style="color:#0040ff"></i></span>
</button>
<div class="collapse navbar-collapse" id="navbarNav">
<ul class="navbar-nav">
<li class="nav-item active">
<a class="nav-link" href="#">home page<span class="sr-only">את/ה כאן</span></a>
</li>
<li class="nav-item">
**<a class="nav-link" data-toggle="collapse" href="#graphs">chart page</a>**
</li>
<!-- other nav items -->
<li class="nav-item mt-2">
<input class="form-control" type="search" placeholder="חיפוש" aria-label="Search">
</li>
<li class="nav-item mt-2">
<button class="btn btn-outline-info mr-2" type="submit">חיפוש</button>
</li>
</ul>
</div>
</nav>
<!-- Other pages -->
<div class="container-fluid">
<div class="collapse sticky-top" style="top:5rem;overflow:hidden" id="graphs">
<div class="card card-body height:100%">
<!-- TradingView Widget BEGIN -->
THE CHART CODE
<!-- TradingView Widget END -->
</div>
</div>
<div class="collapse sticky-top" style="top:5rem;overflow:hidden" id="graphs">
<div class="card card-body height:100%">
……重復……
我解決它的方法是使用 Chrome Dev 工具並在那里使用圖表的設計。 我找到了應該編輯哪些類會影響圖表大小,並使用 @media 規則為某些設備更改這些類。
下次使用開發工具@me ;)
這是我如何在 CSS 中制作它的解決方案。
使用此容器的 ID - <div id="tradingview_8e656"></div>
然后只需在您的 .css 文件中添加這行代碼 Main 參數是!important
#tradingview_8e656 {
width: 1000px !important;
height: 750px !important;
}
這對我來說非常有效。 它還在設備上保持響應。 希望這可以幫助。
使用 vue js:
HTML 正文:
<div class="chart" id="chart" ref="chart"></div>
Vue方法:
mounted() {
this.chart = LightweightCharts.createChart(this.$refs.chart, {
width: this.$refs.chart.offsetWidth,
height: this.$refs.chart.offsetHeight
});
// var lineSeries = this.chart.addLineSeries();
// lineSeries.setData(arr);
// resize observer (native JS)
const ro = new ResizeObserver((entries) => {
const cr = entries[0].contentRect;
this.resize(cr.width, cr.height);
});
ro.observe(this.$refs.chart);
window.addEventListener("resize", () => {
this.resize(this.$refs.chart.offsetWidth, this.$refs.chart.offsetHeight );
});
},
然后添加這個:
methods: {
resize(width, height)
{
this.chart.resize(width, height);
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.