jQuery实现谷歌主页拖动效果的方法
在这里,一个jquery.js图书馆是用来写一个模仿眉目传情网页拖动的特殊代码
眉目传情主页拖动效果jQuery
# div_width {
宽度:98%;
保证金:0汽车;
}
* {
保证金:0px;
填料:0px;
}
# div_left,# div_right,# div_center {
浮点数:左;
宽度:28%;
身高:900px;
保证金:0 3px;
}
# div_center {
宽度:38%;
}
can_move {。
border: 1px solid蓝;
宽度:100%;
5px保证金:0;
最小高度:150px;
}
center_width {。
身高:200px;
}
P {
身高:30px;
颜色:# FFF;
行高:30px;
背景:# 000;
光标移动;
}
#续弦{ / * * /箱
边境:1px冲# 000;
5px保证金:0;
}
/ / < { CDATA {!
窗口。指针函数(){
无功mouse_down = false; / /鼠标按下
无功x_old = null; / /鼠标的坐标按下鼠标
无功y_old = null;
无功div_move = null; / /移动div
无功div_move_width = null; / /移动div宽
无功div_move_height = null; / /移动div高
无功许仙= ; / /箱
文件。OnContextMenu =新功能('event。值=假;');
禁止权利
文件。onselectstart =新功能('event。值=假;');
选择禁止/禁止
当鼠标被按下时
$(p)。Mousedown(function(e){
mouse_down = true; / /鼠标按下
div_move = $(this)(家长); / / div指定当前移动div
div_move_width = div_move.width();
div_move_height = div_move.height();
x_old = e.pagex $(this)。偏移(左); / /得到鼠标的坐标
y_old = e.pagey至(这)。偏移(顶部);
绝对位置
div_move.css({
位置:绝对的,
ZIndex:10',
宽度:div_move_width,
身高:div_move_height,
上图:div_move.offset(顶部),
左:div_move.offset(左)。
});
虚线框被添加到移动div位置之前。
div_move.before(续弦);
$(#续弦)。Css({
宽度:100 %,
身高:div_move_height
});
});
移动鼠标
$(document)。Mousemove(function(e){
如果(!mouse_down)返回false;
无功_x = e.pagex;
无功_y = e.pagey;
无功div_right_div = $(# div_right > div)。不(div_move)。不(#许仙);
div_move.css({ / /改变移动div的顶部和左侧
上图:_y-y_old,
左:_x-x_old
});
*注意,因为当前鼠标总是在移动div中,
所以,鼠标移动不引发MouseEnter、MouseLeave的其他元素,鼠标悬停
和mouseout事件,来达到相同的效果,
只根据鼠标的坐标来判断鼠标是否进入其他元素。
无功left_left = $(# div_left)。偏移(左);
确定容器 / / div_left左侧位置
无功left_width = $(# div_left )Width();
无功right_left = $(# div_right)。偏移(左);
确定位置的容器 /右div_right
无功right_width = $(# div_right )Width();
无功center_left = $(# div_center)。偏移(左);
确定容器/中间div_center位置
无功center_width = $(# div_center )Width();
判断鼠标坐标为左/ div_left容器
如果(_x > left_left_x <(left_left + left_width)){
最后一个可以选择/移动div容器左div_left下,
div元素当前正在移动,而虚线框不包含。
无功div_left_last = $(# div_left > div)。不(div_move)。不(#续弦)。滤波器(上);
如果(div_left_last。长度> = 1){
当法官 / / div_left移动div元素在容器
如果(_y >(div_left_last.offset()。顶+ div_left_last.height())){
确定是否在左/ div_left容器下面的最后一个元素的鼠标
$(#许仙)(去除); / /如果它被删除,虚线前加框
div_left_last.after(续弦);
虚线框添加 / /对div_left集装箱左侧最后一个子元素
$(#续弦)。Css(套装{ / /高赫款
宽度:100 %,
身高:div_move_height
});
其他{ }
如果鼠标不在左/ div_left容器下面的最后一个元素,
/ /然后周期确定鼠标是否进入左div_left容器div元素下的移动
无功div_left_div = $(# div_left > div)。不(div_move)。不(#许仙);
对于(var i = 0;i < div_left_div.length;i++){
如果(_y > div_left_div.eq(我)。偏移()。顶(_y < div_left_div.eq(我)。偏移()。顶+ div_left_div.eq(我)。Height())){
$(#许仙)删除();
如果是,在删除添加框之前先点虚线。
div_left_div.eq(我)之前(续弦);
在前一个div鼠标上添加的虚线框来输入当前元素
$(#续弦)。Css(套装{ / /高赫款
宽度:100 %,
身高:div_move_height
});
中断;退出
}
}
}
}否则{ / /如果没有可移动的div元素左面div_left容器下
无功div_left_div = $(# div_left > div)。不(div_move)。不(#许仙);
如果(div_left_div。长度= = 0){
$(#许仙)(去除); / /删除盒子之前添加虚线
$(# div_left)。追加(续弦);
添加的虚线框/ div_left容器元素的左
$(#续弦)。Css({
宽度:100 %,
身高:div_move_height
});
}
}
} else if(_x > center_left_x <(center_left + center_width)){
/ /来判断鼠标是否在div_center容器中
最后选择了一个移动/ div容器中div_center,
div元素当前正在移动,而虚线框不包含。
无功div_center_last = $(# div_center > div)。不(div_move)。不(#续弦)。滤波器(上);
如果(div_center_last。长度> = 1){
div_center / /容器可拆卸的div元素之间的时间
如果(_y >(div_center_last.offset()。顶+ div_center_last.height())){
确定是否在一个可移动的div的子元素的中间以下div_center容器端/ /鼠标
$(#许仙)删除();
如果是,在删除添加框之前先点虚线。
div_center_last.after(续弦);
虚线为最终 / /箱添加一个DIV元素div_center容器
$(#续弦)。Css({ / /设置宽度和高度的盒子
宽度:100 %,
身高:div_move_height
});
其他{ }
如果鼠标不在中间/ div_center容器最后一个可移动的div子下面的元素,
循环鼠标是什么
无功div_center_div = $(# div_center > div)。不(div_move)。不(#许仙);
对于(var i = 0;i < div_center_div.length;i++){
如果(_y > div_center_div.eq(我)。偏移()。顶(_y < div_center_div.eq(我)。偏移()。顶+ div_center_div.eq(我)。Height())){
$(#许仙)删除();
在删除添加框之前,将鼠标框中的div元素找到。
div_center_div.eq(我)之前(续弦);
将前面的div元素添加到当前鼠标中的虚线框
$(#续弦)。Css({
设置/框的宽度和高度
宽度:100 %,
身高:div_move_height
});
中断;退出
}
}
}
其他{ }
如果中间 / / div_center没有移动div容器
无功div_center_div = $(# div_center > div)。不(div_move)。不(#许仙);
如果(div_center_div。长度= = 0){
$(#许仙)删除();
添加/删除之前的虚线框
$(# div_center)。追加(续弦);
虚线框添加 / / div_center div中的最后一个元素
$(#续弦)。Css({
宽度:100 %,
身高:div_move_height
});
}
}
} else if(_x > right_left_x <(right_left + right_width)){
确定鼠标是否 / / div_right在容器的右侧
最后一个可以选择/移动div_right div容器的右侧,
div元素当前正在移动,而虚线框不包含。
无功div_right_last = $(# div_right > div)。不(div_move)。不(#续弦)。滤波器(上);
如果(div_right_last。长度> = 1){
要确定是否正确 / / div_right容器下面移动div元素
如果(_y >(div_right_last.offset()。顶+ div_right_last.height())){
当鼠标右/法官div_right容器div元素最后以下活动
$(#许仙)删除();
如果是,在删除添加框之前先点虚线。
div_right_last.after(续弦);
/ /添加虚线框在容器的右边最后一个元素div_right
$(#续弦)。Css({
设置框的宽度和高度
宽度:100 %,
身高:div_move_height
});
其他{ }
如果鼠标不在右边 / div_right容器div元素最后以下活动,
循环判断鼠标进入/ div_right在容器内的可移动的div元素的右边
对于(var i = 0;i < div_right_div.length;i++){
如果(_y > div_right_div.eq(我)。偏移()。顶(_y < div_right_div.eq(我)。偏移()。顶+ div_right_div.eq(我)。Height())){
$(#许仙)删除();
在删除添加的框之前,在鼠标中找到div元素。
div_right_div.eq(我)之前(续弦);
将虚线框/添加到鼠标的前面到div元素中
$(#续弦)。Css({
设置宽度和高度
宽度:100 %,
身高:div_move_height
});
打破;
/退出
}
}
}
其他{ }
如果没有移动div元素在合适的 / / div_right元素
如果(div_right_div。长度= = 0){
$(#许仙)删除();
添加/删除之前的虚线框
$(# div_right)。追加(续弦);
添加到右边的框/ div_right容器元素
$(#续弦)。Css({
设置框的宽度和高度
宽度:100 %,
身高:div_move_height
});
}
}
}
})。Mouseup(function(){)
mouse_down = false; / /鼠标释放
$(#许仙)前(div_move);
添加div元素当前移动到框的前面。
div_move.css({
更改是移动div元素的位置和宽度
位置:静态的,
宽度:100 %
});
$(#许仙)删除();
删除
返回false;
});
}
>
音乐
活动
科学与技术
新闻
要素
希望本文能对大家的jQuery程序设计有所帮助。