2015-12-19 40 views
-3

我已经编写了一个脚本,当窗口被挤压到某个水平长度时,将float的值从right切换为left条件满足时不会触发事件

function switchMedia(){ 
    if(w < 1050){ 
     document.getElementById("secondPic").style.cssFloat = "left"; 
    document.getElementById("secondPic").style.marginLeft = "1.5vh"; 
    } 
    if(w > 1050){ 
     document.getElementById("secondPic").style.cssFloat = "right"; 
    } 
    } 
} 

而且这里的听众:

initialize(); 

function initialize(){ 
    addEventListener("resize",switchMedia,false); 
    switchMedia(); 

} 

奇怪的是,它的工作对我摆在w第一的价值观,但一旦我切换到1050,浮点值不会改变。

+0

你有两个花括号'}}'。你在哪里更新'w'变量?你在哪里处理确切的'1050'情况? –

回答

0

你的条件语句只有当w小于或大于1050 1050既不低于也不超过1050试着改变第二有条件if(w > 1049)

+0

虽然在问题中没有指定,但我认为'w'是窗口宽度。我怀疑OP没有调整足够大的宽度来改变这个特定的值。 – marekful

+0

你可能是对的,我把“我切换到1050”表示他们手动设置'w'直到他们知道条件正在工作。 – TAGraves

0

您需要更新w变量

返回true

http://jsbin.com/fivove/1/

function switchMedia(){ 
    var w = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth; 
    if(w < 1050){ 
    document.getElementById("secondPic").style.float = "left"; 
    document.getElementById("secondPic").style.marginLeft = "1.5vh"; 
    } 
    if(w >= 1050){ 
    document.getElementById("secondPic").style.float = "right"; 
    } 
} 


function initialize(){ 
    window.addEventListener("resize",switchMedia,false); 
    switchMedia(); 

} 

initialize(); 

https://stackoverflow.com/a/28241682/383904


另外,不要两次的元素大小调整搜索到DOM特别不:

http://jsbin.com/fivove/2/

var secPic = document.getElementById("secondPic"); // Cache your element! 
// It's too expensive to lookup th whole DOM for a single element on resize 

function switchMedia(){ 
    var w = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth; 
    var isSmall = w < 1050; 
    secPic.style.float  = isSmall ? "left" : "right"; 
    secPic.style.marginLeft = isSmall ? "0" : "1.5vh"; 

} 

function initialize(){ 
    window.addEventListener("resize",switchMedia,false); 
    switchMedia(); 
} 

initialize(); 
+0

我有'var w = window.innerWidth'我相信和你的代码一样。但是我反正试过了,它似乎没有工作:( – RM3

+0

@ RM3你怎么解释比工作jsBin演示?:D请打开控制台,检查你的错误并修复它们。 –

+0

'function switchMedia(){ \t \t VAR无线= window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth,smallWidth = 1050; \t \t \t pic2.style.cssFloat = smallWidth “左”: “正确的”; \t \t \t pic2.style.marginLeft = smallWidth?“0”?“1.5vh”; \t \t}' – RM3