我有一个下拉 div,当单击某个元素时我需要向下滑动,所以我编写了一个 js 函数,到目前为止它似乎工作。对于这个特定元素,我使用:before
并:after
创建了一个类似箭头的图形,如果下拉 div 向下或向上滑动,我需要更改样式。
function opere_slide(){
ul=document.getElementById('opere');
opere_tag=document.getElementById('opere_tag');
margin=ul.style.marginTop;
if(margin=='0px'){
ul.style.marginTop='-200px';
opere_tag.style.backgroundColor='white';
opere_tag.style.borderBottomColor='#BCD2EE';
}
else{
ul.style.marginTop='0px';
opere_tag.style.backgroundColor='#F8F8F8';
opere_tag.style.borderBottomColor='#E0E0E0';
}
}
这就是为什么我在上面的函数中添加了一个应该创建 HTML 样式元素并应用我需要的新 css 代码的和平。问题是:功能似乎不再起作用。
function opere_slide(){
head=document.getElementsByTagName('head')[0];
stylesheet=document.createElement('style');
ul=document.getElementById('opere');
opere_tag=document.getElementById('opere_tag');
margin=ul.style.marginTop;
if(margin=='0px'){
ul.style.marginTop='-200px';
opere_tag.style.backgroundColor='white';
opere_tag.style.borderBottomColor='#BCD2EE';
}
else{
ul.style.marginTop='0px';
opere_tag.style.backgroundColor='#F8F8F8';
opere_tag.style.borderBottomColor='#E0E0E0';
text=document.createTextNode('div#opere_tag:before{border-top:10px solid #E0E0E0;}
div#opere_tag:after{border-top:10px solid #F8F8F8;}');
stylesheet.appendChild(text);
head.appendChild(stylesheet);
}
}
PS:最后一件事可能很重要。该函数是“回显” HTML 脚本元素的 php echo 函数的内部。这就是我只使用单引号的原因。