Javascript 画一些不需要的东西';t使用Raphael使用滚动条移动
我用拉斐尔画了一个图形。这个图形非常大,所以浏览器窗口显示了一个滚动条。现在,我希望图形的一部分保持静止,即使用户移动滚动条。这怎么可能呢? 此外,我想根据滚动条的位置更改图形(例如,在滚动条上显示x坐标)。这可能吗?Javascript 画一些不需要的东西';t使用Raphael使用滚动条移动,javascript,scroll,raphael,Javascript,Scroll,Raphael,我用拉斐尔画了一个图形。这个图形非常大,所以浏览器窗口显示了一个滚动条。现在,我希望图形的一部分保持静止,即使用户移动滚动条。这怎么可能呢? 此外,我想根据滚动条的位置更改图形(例如,在滚动条上显示x坐标)。这可能吗? 谢谢。这是我问题的答案。要保持图形的一部分不受滚动影响,请创建两个画布,一个用于应随滚动移动的部分,另一个用于静止部分。然后将第二块画布放入。 代码如下: <div id="part1"> <script type="text/javascript"&g
谢谢。这是我问题的答案。要保持图形的一部分不受滚动影响,请创建两个画布,一个用于应随滚动移动的部分,另一个用于静止部分。然后将第二块画布放入
。
代码如下:
<div id="part1">
<script type="text/javascript">
var paper1 = Raphael("part1", 1000, 200);
// draw the figure
</script>
</div>
<div id="part2" style="position: fixed">
<script type="text/javascript">
var paper2 = Raphael("part2", 1000, 200);
// draw the figure
</script>
</div>
var paper1=拉斐尔(“第1部分”,1000,200);
//画图
var paper2=拉斐尔(“第二部分”,1000,200);
//画图
请注意,此代码仅在图形的两个部分分开时有效。我不知道如果它们重叠,是否还能在两块画布上画出来
要根据滚动条的位置更改图形,请使用以下代码。getScrollX()函数是根据处的代码改编的
函数getScrollX(){
var-scrOfX=0;
if(typeof(window.pageYOffset)=“number”){
//网景兼容
scrOfX=window.pageXOffset;
}else if(document.body
&&(document.body.scrollLeft | | document.body.scrollTop)){
//DOM兼容
scrOfX=document.body.scrollLeft;
}else if(document.documentElement
&&(document.documentElement.scrollLeft | | document.documentElement.scrollTop)){
//IE6标准兼容模式
scrOfX=document.documentElement.scrollLeft;
}
返还外汇;
}
window.onscroll=函数(){
var x=getScrollX();
//改变数字
}
在CSS中,这是position:fixed
。然而,我不知道这是如何翻译成拉斐尔的。您可能需要创建一个单独的图形覆盖第一个图形,但使用固定的定位。谢谢。我已经想出了第一个问题的答案。只需创建两张画布,并将其中一张放入
。至于第二个问题,经过一些搜索之后,似乎可以在javascript中获得滚动条的位置。明天将尝试。JavaScript有一个滚动事件-这可能是根据滚动条位置放置要更新的代码的最佳位置。@take-请发布您的答案,以便其他人可以从中受益。
<script type="text/javascript">
function getScrollX() {
var scrOfX = 0;
if (typeof (window.pageYOffset) == 'number') {
//Netscape compliant
scrOfX = window.pageXOffset;
} else if (document.body
&& (document.body.scrollLeft || document.body.scrollTop)) {
//DOM compliant
scrOfX = document.body.scrollLeft;
} else if (document.documentElement
&& (document.documentElement.scrollLeft || document.documentElement.scrollTop)) {
//IE6 standards compliant mode
scrOfX = document.documentElement.scrollLeft;
}
return scrOfX;
}
window.onscroll = function() {
var x = getScrollX();
// change the figure
}
</script>