2016-12-28 146 views
1

我想創建自定義樣式的工具提示時懸停在鏈接上。
Google'd幾乎整個互聯網,並沒有發現任何東西...
我想我的自定義工具提示有圖像背景,可以有透明背景作爲PNG圖像。自定義樣式工具提示

enter image description here

而且一些調整,使文本將出現在這樣的背景下。 可能嗎? :>

+2

你不可能GOOGLE過多... https://jqueryui.com/tooltip/ < - 第一個谷歌鏈接 – War10ck

+0

不知道你明白我的意思。你有沒有看到提供的鏈接?我不想顯示「只」工具提示。我想顯示一個圖片和文字的工具提示... – user7350580

+0

jQuery UI可以做自定義內容的工具提示。去@ War10ck的鏈接,並閱讀它 - 或[這裏](http://jqueryui.com/tooltip/#custom-content) – fnostro

回答

0

這是可能的,但是這取決於如果你希望它是防彈,對於比較容易的部分就可能變得很複雜:

  1. 製作一個div並將position的值設置爲fixedabsolute,然後將其設置爲非常高的z-index,並將您的圖片設置爲背景,並將默認設置爲display:none
  2. 在每一個環節(或您要啓用的工具提示爲它添加一些data屬性,在這個演示是data-tooltip-title任何元素。
  3. 使用JavaScript,將鼠標懸停在「tooltipped」元素時,注入的價值data-tooltip-title屬性作爲工具提示文本,也topleft了「tooltipped」元素作爲topleft工具提示的偏移,以及淡入工具提示。
  4. 在鼠標移開,淡入淡出的工具提示。

jsFiddle Demo

var links = $('[data-tooltip-title]'), 
 
    myTooltip = $('#my-tooltip'); 
 

 
links.each(function() { 
 
    var $this = $(this), 
 
    posLeft = $this.offset().left, 
 
    posTop = $this.offset().top, 
 
    title = $this.attr('data-tooltip-title'); 
 
    $this.hover(function() { 
 
    myTooltip.text(title).css({ 
 
     top: posTop + 20, 
 
     left: posLeft 
 
    }).fadeIn(); 
 
    }, function() { 
 
    myTooltip.fadeOut(); 
 
    }) 
 
})
#my-tooltip { 
 
    background: transparent url(//i.stack.imgur.com/ZNRfI.png) no-repeat; 
 
    width: 541px; 
 
    height: 113px; 
 
    color: white; 
 
    text-align: center; 
 
    line-height: 150px; 
 
    position: absolute; 
 
    left: -999px; 
 
    top: -999px; 
 
    z-index: 9999; 
 
    display: none; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<div id="test-div"> 
 
    Pie jelly-o chocolate sweet topping jujubes tiramisu cupcake kitkat muffin biscuit. Sesame snaps jelly <a href="#" data-tooltip-title="demo text for custom tooltip #1">halvah caramels macaroon</a> powder cake sweet. Toffee jelly-o halvah. Muffin cake macaroon wafer. 
 
    Chocolate carrot cake chupa chups. Soufflé candy canes cake. Toffee soufflé sweet roll fruitcake sesame snaps brownie jelly-o. Marshmallow dessert biscuit topping gummies gummi bears ice cream cookie 
 
    <br>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Consequatur eum ducimus optio nesciunt <a href="#" data-tooltip-title="demo text for custom tooltip #2">porro delectus </a>nam ipsam voluptatem eaque, tempore voluptates enim? Maxime amet quas 
 
    unde eligendi recusandae esse cum? 
 
</div> 
 
<div id="my-tooltip"></div>


以上的自定義工具提示並不完美的時候:

  • 「tooltipped」,瀏覽器窗口的最右側或底部邊之間的距離是比工具提示的寬度少
  • 「tooltipped」元素的文本包裝在兩行上。
  • 工具提示的文本比工具提示寬度更長。

這些問題可以修復,但需要進一步實施。

+0

這是非常好的開始,這是我需要的東西; D謝謝隊友<3 – user7350580

+0

但是,你有一個想法,我怎麼可以在那裏添加新的行(標題旁邊)?像data-tooltip-line1和data-tooltip-line2一樣? – user7350580

+0

以[fiddle](https://jsfiddle.net/dgxys80b/5/)爲例 –

0

HTML title屬性(通常認爲是「工具提示」)只能是文本。要做到你想要什麼,看看引導「Popovers」:http://getbootstrap.com/javascript/#popovers

+0

和一些可以包含圖像的CSS/JS工具提示?我真的很想只爲工具提示使用bootstrap。任何jsfiddle的例子都會很棒; D – user7350580