调整元素边框的大小
Resizeable element border
我得到了一个名为"content"的div。"content"的所有子div都是可调整大小的,并且在悬停时有一个边框,如下所示:
$('#content div').resizable({});
$('#content div').mouseleave(function(){
$(this).removeClass('borderClass');
});
$('#content div').mouseenter(function(){
$(this).addClass('borderClass');
});
问题是在重新调整大小的元素周围出现了边框。例子:http://jsfiddle.net/hyEhh/6/
我怎么能给所有的"内容"的孩子一个边界除了边界出现在场外,当你看到div??
编辑*我必须能够添加与javascript/jQuery动态边界。这只是一个例子,我想能够添加边框悬停不管有多少div在"内容"
我试过的一件事,我不明白为什么不工作是这个:
if(document.body.style.cursor = "n-resize") {
$(this).removeClass('borderClass');
}
它基本上是创建边界的可调整大小的div,因为resizble动态地添加了另一个div(检查您的元素)…你的选择器是用于#content
内的所有div。一种方法是将所有需要的元素分别调用为hover…或者其他方式,留下所有在选择器中通过调整大小创建的div ....
试试这个
$('#content div').resizable({});
$('div#test,div#test2').hover(function(){
$(this).addClass('borderClass');
},function(){
$(this).removeClass('borderClass');
});
和使用hover()
代替两个独立的事件处理程序…hover是mouseenter
和mouseleave
的简写
$('#content div:not(".ui-resizable-handle")').hover(function(){
$(this).addClass('borderClass');
},function(){
$(this).removeClass('borderClass');
});
这是在不选择动态创建的div调整大小的情况下。不需要在HTML中添加任何东西,只需使用jquery not
方法…
小提琴在这里
更新小提琴
为每个需要边框的元素添加一个通用的类名。
<div id=content>
<div id=test>BLABLA
<div class="child" id="test2">lala</div>
</div>
</div>
然后匹配你在jQuery中使用的CSS选择器:
$('#content div').resizable({});
$('#content div.child').mouseleave(function(){
$(this).removeClass('borderClass');
});
$('#content div.child').mouseenter(function(){
$(this).addClass('borderClass');
});
有几种方法可以做到这一点。第一种方法是给你的孩子分配一个类,并像这样命名它
<div id=content>
<div id=test>BLABLA
<div class="className" id="test2">lala</div>
</div>
</div>
$('#content div').resizable({});
$('#content div').mouseleave(function(){
$('.className').removeClass('borderClass');
});
$('#content div').mouseenter(function(){
$('.className').addClass('borderClass');
});
第二步是搜索父div的子元素。
$('#content div').resizable({});
$('#content div').mouseleave(function(){
$(this).children().removeClass('borderClass');
});
$('#content div').mouseenter(function(){
$(this).children().addClass('borderClass');
});
如果你想为你悬停在上面的单个可调整大小的元素添加边框,这是非常简单的。您可以像前面提到的那样为元素分配一个类,使用这个类选择它们,并将click事件绑定到它。
<div id=content>
<div id=test>BLABLA
<div class="className">lala</div>
<div class="className">lala</div>
<div class="className">lala</div>
<div class="className">lala</div>
</div>
</div>
$('.className').hover(function(){
$(this).toggleClass('borderClass');
});
注意,我在这里使用了toggleclass方法,因为它将获得与在单独的行中添加和删除类相同的结果。
要实现只有上下边框你的CSS类应该看起来像
.borderClass
{
border-top:2px solid #000000;
border-right:none;
border-bottom:2px solid #000000;
border-left:none;
}
- 如何相对于父边框的外边缘定位元素
- 在元素上绘制边框,但不捕获事件
- 边距和输入元素边框之间的填充颜色
- 更改事件中输入元素的样式边框
- 如何在选定时更改元素的边框
- 元素边框上的 HTML 鼠标悬停事件
- CSS 导航链接样式:删除其他元素的样式,并在将鼠标悬停在选定元素上时删除双边框
- JavaScript 边框高度函数 - 匹配两个元素
- 如果TABLE元素有边框(IE与Chrome),则偏移量不同
- 如何在AngularJS中为img元素设置边框样式
- 在画布元素内的javascript中为new Image()设置边框颜色
- 在 D3 地图中向 SVG 元素添加边框和边框半径
- 使用JQuery检查元素是否有边框
- 如何获取元素的内边距、边框和边距的宽度
- 为d3js的线元素添加边框
- 如果父元素有边框,当鼠标同时退出父元素和子元素时,如何避免来自父元素的鼠标悬停事件
- 给调色板元素边框或标题
- 如何使用jQuery检测元素的左边框
- 为什么bootstrap 3在我的按钮和其他html元素中设置了一个蓝色矩形边框
- 调整元素边框的大小