2017-11-22 12 views
0

scrollTopが特定の場所に届くと、svgファイルをリロードします。 Svgがobjectタグを使用してhtmlページに追加されました。一度だけのためhtmlタグオブジェクトデータを再読み込みするには?

HTMLコード

<section class="section" id="svg-scroll"> 
..... 
<object type="image/svg+xml" data="http://reussis.com/demo/vardan/svg/icons_-04.svg"></object> 
.... 
<object type="image/svg+xml" data="http://reussis.com/demo/vardan/svg/icons_-03.svg"></object> 
.....</section> 

スクリプト

答えて

1
$(document).ready(function(){ 
    svg_scroll_function(); 
    $(window).scroll(function() {  
      svg_scroll_function(); 
    }); 
}) 
function svg_scroll_function() { 
    var scroll = $(window).scrollTop(); 

    if (scroll >= ($('#svg-scroll').offset().top -80)) { 

     $('object').reload();// Here i want to reload something 
    } 
} 

、trueにルートにfirst_time VARを設定します。

var first_time = true; //this should be outside of scroll function 
... 
if(first_time){ 
    $('object').each(function(index,el){ 
    $(el).attr('data', $(el).attr('data')); 
    }); 
    first_time = false; 
} 
+0

:あなたは、そのオブジェクトに(すなわちswf-objid属性を与えると、その現在の値にそのdata属性を設定し、一つだけを更新したいです一度だけロードするには、何を設定する必要がありますか? – Rijo

+0

フラグを1回だけ実行する必要があります。私の編集を見る – Miro

0

あなたobjects内のファイルをリロードするために、あなたはそれらの要素への参照を取得し、その後、そのdata属性を更新する必要があります。以下の例では

、私たちは、DOM内のすべてのobjectをつかむと、彼らはすでに持っている値にそのdata属性をリセットすることにより、それらをリロードします、代わりにDOM内のすべてのobjectを更新する、場合

var objects = document.getElementsByTagName("object"); 

for(var i = 0; i < objects.length; i++) { 

    var obj = objects[i]; 

    obj.data = obj.data // will trigger update 
} 

私が欲しい場合は

var obj = document.getElementById("swf-obj"); 

obj.data = obj.data; // trigger update 
関連する問題