Hướng dẫn Bẻ cong văn bản bằng Jquery Arc Text

PVS

Super Moderator
Thành viên BQT
Tham gia
28/02/2015
Bài viết
16,829
Được Like
12,688
Bẻ cong văn bản bằng Jquery Arc Text

CSS3 transform có thể giúp ta dễ dàng xoay một đối tượng sang nhiều góc độ khác nhau. Tuy nhiên việc xoay từng chữ cái trong đoạn văn bản là rất khó khăn. Arc Text là một plug-in của Jquery sẽ giúp chúng ta làm được điều tưởng chừng như không thể “Bẻ cong đoạn văn bản” theo một đường cung tròn.

#Yêu cầu
– Bạn cần phải biết căn bản về html và css ngoài ra bạn cũng phải biết Jquery căn bản nữa.
– Bạn cần đưa library Jquery và plug-in ArcText.js vào project của bạn, bên trong thẻ head.

Ví dụ:
Mã:
<script src="js/jquery.1.7.2.min.js" type="text/javascript"></script>
<script src="js/jquery.arctext.js" type="text/javascript"></script>
<script src="js/jquery.global.js" type="text/javascript"></script>

Cách hoạt động

7812921184_5de3fed7ac_z.jpg

Về nguyên tắc hoạt động thì ArcText sẽ dùng Jquery tách từng chữ cái trong đoạn văn bản, sau đó nó sẽ apply CSS3 transform vào các chữ cái đó cho phù hợp với đường cung mà bạn chọn.

Ví dụ

7821307052_ba7e015265_z.jpg

Đầu tiên, mình cần setup một đoạn code html như sau:
Mã:
<script type="text/javascript">
jQuery(document).ready(function($) {
    $("#ex").arctext({
        radius:210, //Độ cong của chữ
        dir:1 // 1 cong lên, -1 cong xuống
    });
});
</script>
<h1 id="ex">Test thử cái coi</h1>

Bạn có thể thay đổi các giá trị radiusdir để biết thêm về các tính năng của nó.
Nếu các bạn muốn nó thẳng đứng 90 độ như trong demo trên thì chỉ việc thêm vào css đoạn code phía dưới, và nếu muốn cong qua trái hay phải thì chỉ việc thay đổi giả trị dir trong Jquery là 1, -1
Mã:
#ex{ // ID của thẻ h1
// CSS3 for all browser
-webkit-transform: rotate(-90deg);
-moz-transform: rotate(-90deg);
-o-transform: rotate(-90deg);
-ms-transform: rotate(-90deg);
transform: rotate(-90deg);
}

Áp dụng thực tế
Bây giờ chúng ta sẽ áp dụng và một dự án thực tế nhé.

7812887524_05d9ed8ed3_z.jpg

Setup code html và css
Mã:
<style type="text/css">
body{
    font-family: Roboto;
    color: #6ABDC5;
    background:#6ABDC5 url(../images/background-puple.png) repeat;
}
article{
    width: 900px;
    margin: 0 auto;
}
article section{
    width: 400px;
    height: 400px;
    position: relative;
    background: #fff;
    display: inline-block; // Thay thế float, giúp 2 đối tượng ngang hàng nhau
    border-radius: 50%;// Tạo vòng tròn
    text-align: center;
    margin-top: 50px;
    margin-right: 80px;
    cursor: pointer;
}
article section h1{
    line-height: 400px;
    font-size: 30px;
    font-size: 180px;
    text-transform: uppercase;
}
article section p{
    position: absolute;
    bottom: -40px; // Định vị trí cho thẻ p
    left: 20px;
    color: #fff;
    font-size: 25px;
    text-transform: uppercase;
}
article section:last-child{
    margin-right: 0;// bỏ margin left cho section thứ 2
}
 
</style>
 
<article>
    <section id="Yes">
        <h1>YES</h1>
        <p>Lorem ipsum dolor sit amet</p>
    </section>
    <section id="No">
        <h1>NO</h1>
        <p>Lorem ipsum dolor sit amet</p>
    </section>
</article>

Sau đó bạn có thể xem thử, tuy nhiên nó vẫn chưa hoàn thành nhé. Giờ chúng ta sẽ nhúng Jquery vào.
Mã:
<script type="text/javascript">
jQuery(document).ready(function($) {
var sec = $("section");
sec.find("p").css('bottom', '50'); // set css này để che lại phần chữ trong thẻ p
sec.find("p").arctext({radius:210,dir:-1}); // set arc text cho đoạn chữ
 
// funtion hover có thể hiểu như thế này:
// Khi hover vào section thì nó sẽ tìm thẻ p.
// sau đó animate đẩy p xuống 40px để hiển thị ra ngoài.
sec.hover(function(){
    $(this).find('p').animate({
        'bottom':-40 // khi hover vào thì đẩy xuống 40px
    },"slow")},function(){
    $(this).find('p').animate({
        'bottom':50 // khi đưa chuột ra khỏi section thì sẻ quay về vị trí cũ
    },"slow")// slow, fast hoặc ms
})
});
</script>

Bây giờ thì khi các bạn đưa chuột vào chữ YES hoặc NO thì phần desciption sẽ hiện ra. Khá thú vị phải không các bạn.

Lưu ý, hình ảnh các bạn có thể tải về trong file đính kèm phía dưới.

Chúc các bạn thành công.


Nguồn: izwebz.com​
 

Đính kèm

  • arctext.zip
    196.3 KB · Lượt xem: 8
  • Like
Reactions: THB

Hướng dẫn sử dụng

XenForo 1 XenForo 2
Translate by PVS

Dịch vụ XenForo của VNXF

Mr. Tuấn

Mobile/Zalo: 0988 488 096

Telegram: bluekpro

Email: [email protected]

Nhà Tài Trợ

Mút Xốp Không Gian
pallet Thịnh Phát
Top Bottom