我想添加一张幻灯片&使用“onclick”将纯粹的Javascript淡化为DIV效果。
代码在这里:http://jsfiddle.net/TCUd5/
必须滑动的DIV有id =“pulldown_contents_wrapper”。 此DIV包含在SPAN中,也会触发它:
<span onclick="toggleUpdatesPulldown(event, this, '4');" style="display: inline-block;" class="updates_pulldown" >
<div class="pulldown_contents_wrapper" id="pulldown_contents_wrapper">
我认为控制SPAN onclick的JS代码是:
var toggleUpdatesPulldown = function(event, element, user_id) {
if( element.className=='updates_pulldown' ) {
element.className= 'updates_pulldown_active';
showNotifications();
} else {
element.className='updates_pulldown';
}
}
如果无法用纯JS制作它,你知道我怎么能用Mootools做到这一点? (*我只想使用纯JS或Mootols框架。)
我尝试过实施以下代码:why javascript onclick div slide not working?但没有结果。
非常感谢。
我已经设法用Mootools制作它,但我无法弄清楚如何添加幻灯片和放大器。淡入淡出效果,延迟鼠标移除
window.addEvent('domready', function() {
$('updates_pulldown').addEvents({
mouseenter: function(){
$('updates_pulldown').removeClass('updates_pulldown').addClass('updates_pulldown_active')
$('pulldown_contents_wrapper').set('tween', {
duration: 1000,
physics: 'pow:in:out',
transition: Fx.Transitions.Bounce.easeOut // This could have been also 'bounce:out'
}).show();
},
mouseleave: function(){
$('pulldown_contents_wrapper').set('tween', {
duration: 1000,
delay: 1000,
}).hide();
$('updates_pulldown').removeClass('updates_pulldown_active').addClass('updates_pulldown')
},
});
});
var toggleUpdatesPulldown = function(event, element, user_id) {
showNotifications();
}
有什么想法吗?
答案 0 :(得分:3)
jQuery要容易得多,但使用纯JavaScript可以做到这一点。
在CSS中你需要使用过渡
#thing { position:relative;
top: 0px;
opacity: 0.8;
-moz-transition: top 1s linear, opacity 1s linear;
-webkit-transition: top 1s linear, opacity 1s linear;
}
然后在javascript中更改元素的位置时,它应该通过css过渡进行更改。
var toggleUpdatesPulldown = function(event, element, user_id) {
if( element.className=='updates_pulldown' ) {
element.style.top = someValue; //something like '100px' will slide it down 100px
element.style.opacity = '1.0'; //will fade the content in from 0.8 opacity to 1.0
element.className= 'updates_pulldown_active';
showNotifications();
编辑 - 提供了jQuery代码
调用jQuery库,最容易从谷歌主机上完成
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.1/jquery.min.js"></script>
制作悬停功能
$(document).ready(function() {
$('.updates_pulldown').hover( //first function is mouseon, second is mouseout
function() {
$(this).animate({top: '50px'}).animate({opacity: '1.0'});
},
function() { //delay 1000 milliseconds, animate both position and opacity
$(this).delay(1000).animate({top: '0px'}).animate({opacity: '0.5'});
}
)
})
函数时序将与使用transition标记在css中设置的函数时序相同。再次使用'this'而不是类名确保效果仅发生在悬停的类的特定实例上。我不确定这个动画是否正是你所要求的,但如果我正确理解了这个问题,那么主要功能将对你有用。只需更改数字等,以满足您的需求。