悬停时是否可以更改锚点的内容?我有这个样本fiddle 我希望在悬停时将关键锚更改为像我的生物一样。还有别的东西也适合家里。内容属性似乎与此无关。
HTML:
<script type="text/ng-template" id="firstDialogId" >
<div class="ngdialog-message">
<h3>ngDialog template</h3>
</div>
<div class="ngdialog-buttons">
<button type="button" class="ngdialog-button ngdialog-button-primary" ng-click="openSecond()">Open next</button>
</div>
</script>
CSS:
<ul>
<li><a href="#">About</a></li>
<li><a href="#">Home</a></li>
</ul>
答案 0 :(得分:3)
听起来真像JS的工作。仅通过伪元素的CSS解决方案:
.about:before { content: 'About'; }
.home:before { content: 'Home'; }
ul li a:hover:before { content: 'Content'; }
JavaScript解决方案:http://jsfiddle.net/bctaxauo/1/
$('ul li a').hover(function() {
$(this).data('prevText', $(this).text()).text('New Content!');
}, function() {
$(this).text($(this).data('prevText');
});
答案 1 :(得分:3)
&#34;内容属性与
:before
和:after
伪元素一起使用,以插入生成的内容。&#34;不是正常的元素。
参考:http://www.w3schools.com/cssref/pr_gen_content.asp
您可以使用jQuery更改它:
$('li a').mouseenter(function(){
$(this).data('text', $(this).text());
$(this).text('Content');
}).mouseleave(function(){
$(this).text($(this).data('text'));
});
http://jsfiddle.net/TrueBlueAussie/s6ao29eg/2/
此版本只会将文本保存到mouseenter
上元素的数据中,并在mouseleave
上恢复。您也可以使用hover
传递相同的两个函数。
e.g。
$('li a').hover(function(){
$(this).data('text', $(this).text()).text('Content');
}, function(){
$(this).text($(this).data('text'));
});
JSFiddle: http://jsfiddle.net/TrueBlueAussie/s6ao29eg/5/
我注意到其他几个聪明的CSS解决方案已经提供,因此选择取决于您可以更改内容的程度,而不是添加代码。
如果您需要不同的文字,请使用数据属性:
<li><a href="#" data-content="About me!">About</a></li>
e.g。
$('li a').hover(function(){
$(this).data('text', $(this).text()).text($(this).data('content'));
}, function(){
$(this).text($(this).data('text'));
});
JSFiddle: http://jsfiddle.net/TrueBlueAussie/s6ao29eg/8/
$('li a').hover(function(){
$(this).stop(true,true).fadeOut(function(){
$(this).data('text', $(this).text()).text($(this).data('content')).fadeIn();
});
}, function(){
$(this).stop(true,true).fadeOut(function(){
$(this).text($(this).data('text')).fadeIn();
});
});
JSFiddle: http://jsfiddle.net/TrueBlueAussie/s6ao29eg/10/
由于HTML内容显然无法修改,请使用LI
的索引位置以及一组文本项:
var content = ["About me!", "My home!"];
$('li').hover(function(){
var $a = $('a', this);
$a.stop(true,true).fadeOut(function(){
$a.data('text', $a.text()).text(content[$(this).index()]).fadeIn();
});
}, function(){
var $a = $('a', this);
$a.stop(true,true).fadeOut(function(){
$a.text($a.data('text')).fadeIn();
});
});
JSFiddle: http://jsfiddle.net/TrueBlueAussie/s6ao29eg/11/
在知道无法修改HTML之前使用数组的@MariaMadalina
的信用:)
答案 2 :(得分:1)
只需隐藏&#34;悬停文字&#34;当处于正常状态并在悬停时切换显示:
.menu li:hover .unhover {
display: none;
}
.menu li:hover .hover {
display: inline;
}
.menu li .unhover {
display: inline;
}
.menu li .hover {
display: none;
}
&#13;
<ul class="menu">
<li>
<a href="#">
<span class="unhover">Home</span>
<span class="hover">Visit home</span>
</a>
</li>
</ul>
&#13;
答案 3 :(得分:1)
制作了一个jquery片段
func checkAndSetDefaultFont ()
{
let font: UIFont = (NSUserDefaults.standardUserDefaults().objectForKey("defaultFont") as? UIFont)!
UILabel.appearance().font = font;
UILabel.appearance().font = font;
}
看看http://jsfiddle.net/s6ao29eg/3/
修改强>: 我对更具可扩展性的解决方案做了一些修改。
$('li#about').hover(function() {
$("a", this ).text( "something" );
}, function() {
$("a", this ).text( "About" );
});
答案 4 :(得分:0)
您也可以使用jQuery。
在您的li中添加一个ID:
<li><a href="#" id="about">About</a>
并添加此jQuery代码
$(document).ready(function(){
$('#about').hover(function(){
$(this).text('');
$(this).text('My Bio');
});
$('#about').mouseout(function(){
$(this).text('');
$(this).text('about');
});
});
小提琴链接是:https://developers.facebook.com/docs/graph-api/reference/page/#Reading
如果你有多个李,也可以这样做答案 5 :(得分:0)
你可以,但你必须使用:before
和:after
伪元素,以及一些颜色技巧来隐藏原始文本。
ul li a:hover {
color: transparent;
}
ul li a:hover:before {
content: "Content";
position: absolute;
color: red;
}
顺便说一下,为什么要使用<ul>
来嵌套<a>
元素?您无论如何都要从列表中删除所有样式。大多数情况下,您需要的只是样式良好的<a>
标签;如果您将数据结构化为列表,则只将它们嵌套在列表中,这意味着您可能希望在每个li
之前使用项目符号。
答案 6 :(得分:0)
简单的Css唯一解决方案
HTML
<ul>
<li><a href="#"> <span class="visible">About</span> <span class="hover"> My Bio</span> </a></li>
</ul>
的CSS
ul { list-style: none; }
ul li a span.hover{
display:none;}
ul li a:hover span.hover{
display:block;
}
ul li a:hover span.visible{
display:none;
}