2014-10-11 14 views
6

Tôi sử dụng thanh có hình vuông xoay làm dấu phân cách trên trang web của mình.gradient nền & xoay tạo lớp phủ lạ

Màu nền là độ dốc và cố định, do đó, nó tạo hiệu ứng cuộn đẹp mắt, nhưng khi div xoay đạt đến đỉnh cổng xem, lớp phủ gradient lạ xuất hiện.

Chỉ cần nhìn vào nó (bạn cần phải di chuyển chậm chạp cho đến khi tách đạt đến đỉnh của chế độ xem cổng): http://jsfiddle.net/nff2fjf7/4/

body { 
 
    height:800px; 
 
} 
 
.seperator { 
 
    margin:100px 0 0 0; 
 
    background-attachment: fixed; 
 
    background-color: rgba(0, 157, 197, 1); 
 
    background-image: -webkit-linear-gradient(top, rgba(0, 157, 197, 1), rgba(231, 52, 76, 1)); 
 
    background-image: -moz-linear-gradient(top, rgba(0, 157, 197, 1), rgba(231, 52, 76, 1)); 
 
    background-image: -o-linear-gradient(top, rgba(0, 157, 197, 1), rgba(231, 52, 76, 1)); 
 
    background-image: linear-gradient(to bottom, rgba(0, 157, 197, 1), rgba(231, 52, 76, 1)); 
 
    width:100%; 
 
    height:40px; 
 
    text-align: center; 
 
} 
 
.triangle { 
 
    width:40px; 
 
    height:40px; 
 
    display: inline-block; 
 
    margin: 10px 0; 
 
    -moz-transform: rotate(45deg); 
 
    -webkit-transform: rotate(45deg); 
 
    -o-transform: rotate(45deg); 
 
    -ms-transform: rotate(45deg); 
 
    transform: rotate(45deg); 
 
    background-attachment: fixed; 
 
    background-color: rgba(0, 157, 197, 1); 
 
    background-image: -webkit-linear-gradient(top, rgba(0, 157, 197, 1), rgba(231, 52, 76, 1)); 
 
    background-image: -moz-linear-gradient(top, rgba(0, 157, 197, 1), rgba(231, 52, 76, 1)); 
 
    background-image: -o-linear-gradient(top, rgba(0, 157, 197, 1), rgba(231, 52, 76, 1)); 
 
    background-image: linear-gradient(to bottom, rgba(0, 157, 197, 1), rgba(231, 52, 76, 1)); 
 
}
<body> 
 
    <div class="seperator"> 
 
     <div class="triangle"></div> 
 
    </div> 
 
</body>

Trả lời

0

Tôi không phải chuyên nghiệp với bất cứ điều gì để làm với thiết kế web, và tôi có ít ý tưởng về những gì từng tuyên bố cụ thể không, tuy nhiên, đây là những gì tôi có thể cho bạn biết.

  1. Hình dạng của bạn KHÔNG hiển thị với độ dốc. Các màu bạn sử dụng cho tô chuyển tiếp có màu đỏ/xanh lam và chỉ có màu xanh dương được hiển thị
  2. nhận xét dòng sau từ hình tam giác và bạn sẽ thấy quảng trường của mình mà bạn sử dụng cho tam giác thực sự nhận được độ dốc! (màu xanh lam đến màu đỏ)

    nền đính kèm: cố định;

Ngoài ra, nếu bạn đặt chế độ gắn thẻ nền ở mọi nơi bạn sẽ thấy hình vuông bạn sử dụng cho tam giác không hiển thị như bạn muốn.

  1. nếu bạn ổn với màu sắc, bạn không thực sự cần một gradient.

Edit: Tôi đã sai lầm xung quanh với mã của bạn và nếu bạn muốn giữ gradient (trên xuống dưới), bạn có thể sử dụng code này đó là mã của bạn với tập tin đính kèm nền cuộn và tam giác biến đổi:

body { 
    height:800px; 
} 
.seperator { 
    margin:100px 0 0 0; 
    background-attachment: scroll; 
    background-color: rgba(0, 157, 197, 1); 
    background-image: -webkit-linear-gradient(top, rgba(0, 157, 197, 1), rgba(231, 52, 76, 1)); 
    background-image: -moz-linear-gradient(top, rgba(0, 157, 197, 1), rgba(231, 52, 76, 1)); 
    background-image: -o-linear-gradient(top, rgba(0, 157, 197, 1), rgba(231, 52, 76, 1)); 
    background-image: linear-gradient(to bottom, rgba(0, 157, 197, 1), rgba(231, 52, 76, 1)); 
    width:100%; 
    height:40px; 
    text-align: center; 
} 
.triangle{ 
    width: 0; 
    height: 0; 
    display: inline-block; 
    margin: 40px 0; 
    border-left: 30px solid transparent; 
    border-right: 30px solid transparent; 
    border-top: 30px solid rgba(231, 52, 76, 1); 
} 
+1

Nếu bạn di chuyển trang, gradient thay đổi màu sắc. Đó là những gì 'background-attachment: fixed' là cho. Tôi sửa đổi fiddle một chút. [Có một cái nhìn tại fiddle này] (http://jsfiddle.net/6r0b0b2z/) và bạn có thể thấy sự thay đổi màu sắc khi cuộn. – misterManSam

+1

Tôi có thể cho bạn biết lý do tại sao nó xảy ra, nhưng tôi không có ý tưởng làm thế nào để "đúng" sửa chữa nó vào lúc này. Bạn nhận được hành vi này bởi vì hình vuông xoay của bạn đi vào tọa độ màn hình tiêu cực và nó được màu sắc tính toán lại từ đầu ban đầu, không phải màu được xoay. Khi hình vuông rời khỏi màn hình phần vô hình của hình vuông (hoặc phần có thể là vô hình nếu nó không được xoay) hoạt động như thể nó được vẽ ở phía đối diện. Vì vậy, nếu bạn đặt hình vuông của bạn ở phía trên cùng của màn hình để nó là hầu như không nhìn thấy phần vô hình sẽ hành động như thể nó là ở dưới cùng của màn hình và ngược lại. – Zero

+0

Nếu di chuyển hình vuông đến tận đáy, bạn sẽ thấy hành vi tương tự. – Zero

1

body { 
 
    height:800px; 
 
} 
 
.seperator { 
 
    margin:100px 0 0 0; 
 
    background-attachment: fixed; 
 
    background-color: rgba(0, 157, 197, 1); 
 
    background-image: -webkit-linear-gradient(top, rgba(0, 157, 197, 1), rgba(231, 52, 76, 1)); 
 
    background-image: -moz-linear-gradient(top, rgba(0, 157, 197, 1), rgba(231, 52, 76, 1)); 
 
    background-image: -o-linear-gradient(top, rgba(0, 157, 197, 1), rgba(231, 52, 76, 1)); 
 
    background-image: linear-gradient(to bottom, rgba(0, 157, 197, 1), rgba(231, 52, 76, 1)); 
 
    width:100%; 
 
    height:40px; 
 
    text-align: center; 
 
} 
 
.triangle { 
 
    width:40px; 
 
    height:40px; 
 
    display: inline-block; 
 
    margin: 10px 0; 
 
    -moz-transform: rotate(45deg); 
 
    -webkit-transform: rotate(45deg); 
 
    -o-transform: rotate(45deg); 
 
    -ms-transform: rotate(45deg); 
 
    transform: rotate(45deg); 
 
    background-attachment: fixed; 
 
    background-color: rgba(0, 157, 197, 1); 
 
    background-image: -webkit-linear-gradient(top, rgba(0, 157, 197, 1), rgba(231, 52, 76, 1)); 
 
    background-image: -moz-linear-gradient(top, rgba(0, 157, 197, 1), rgba(231, 52, 76, 1)); 
 
    background-image: -o-linear-gradient(top, rgba(0, 157, 197, 1), rgba(231, 52, 76, 1)); 
 
    background-image: linear-gradient(to bottom, rgba(0, 157, 197, 1), rgba(231, 52, 76, 1)); 
 
    background-repeat:no-repeat; 
 
}
<body> 
 
    <div class="seperator"> 
 
     <div class="triangle"></div> 
 
    </div> 
 
</body>

thiết background-repeat:no-repeat trên .triangle dường như để chữa nó ở phía trên cùng của trang, nhưng tôi ssue vẫn còn hiện diện ở phía dưới:/

Fiddle

+0

cũng cảm ơn bạn ít nhất là vấn đề hàng đầu được giải quyết.yeah đúng tôi đã không đề cập rằng điều này cũng xảy ra ở phần cuối của trang. – user4075462

Các vấn đề liên quan