2015-03-09 4 views
1

Можно ли сделать это с помощью CSS и, возможно, JavaScript, если необходимо?Как объединить два изображения по диагонали с помощью CSS/JavaScript?

Я хочу, чтобы содержимое внутри этого треугольника div (image1/2.jpg) было 2 разными div, так как я хочу сделать их ссылками на 2 разных страницы.

enter image description here

+0

могут образы быть определены как 'фона image' или они должны быть в HTML? Пожалуйста, напишите свой текущий html и ваши спецификации. –

+2

Возможно, вы хотите, чтобы css обрезал. см. эту удобную статью http://www.vanseodesign.com/css/clipping-and-masking-examples/ и посмотрите на использование многоугольника. Поддержка браузера указана в статье ... http://caniuse.com/#feat=css-masks – Radio

+2

Пожалуйста, приложите усилия, используя ту или иную технику, и покажите нам, что вы пробовали. – isherwood

ответ

0

Вы можете сделать это с абсолютным позиционированием:

http://jsfiddle.net/4wutsrs3/

<div class="con"> 
    <div class="lft"></div> 
    <div class="rgt"></div> 
    <div class="lft-lbl">lft-lbl</div> 
    <div class="rgt-lbl">rgt-lbl</div>  
</div> 

.con { width:200px; position:relative; } 

.lft { width:0; height:0; position:absolute; top:0; left:0; 
     border-style:solid; 
     border-width:200px 0 0 200px; 
     border-color:transparent transparent transparent orange; 
} 

.rgt { width:0; height:0; position:absolute; top:0; right:0; 
     border-style:solid; 
     border-width:0 200px 200px 0; 
     border-color:transparent #007bff transparent transparent; 
} 

.lft-lbl { position:absolute; top:160px; left:20px; } 

.rgt-lbl { position:absolute; top:20px; right:20px; z-index:99; } 
+1

Я не вижу изображений в этом решении. – j08691

+0

Да, как сказал j08691, никаких изображений не было. – zmuci

2

Использование HTML холст и кинетическими JS вы должны быть в состоянии достичь этого:

JavaScript

var c = $('#canvas').get(0).getContext("2d"), 
    imageOne = $('#imageOne').get(0), 
    imageTwo = $('#imageTwo').get(0), 
    pattern1 = c.createPattern(imageOne,"no-repeat"), 
    pattern2 = c.createPattern(imageTwo,"no-repeat"); 

c.canvas.width = 400; // width of rectangle 
c.canvas.height = 400; // height of rectangle 

c.fillStyle = pattern1; 
c.beginPath(); 
c.moveTo(0, 0); // top left 
c.lineTo(400, 0); // top right 
c.lineTo(400, 400); // bottom right 
c.closePath(); 
c.fill(); 

c.fillStyle = pattern2; 
c.beginPath(); 
c.moveTo(0, 0); // top left 
c.lineTo(0, 400); //bottom left 
c.lineTo(400, 400); // bottom right 

c.closePath(); 
c.fill(); 

HTML

<canvas id="canvas"> 
    <img id="imageOne" src="http://lorempixel.com/400/400/city/1" /> 
    <img id="imageTwo" src="http://lorempixel.com/400/400/city/2" /> 
</canvas> 

Fiddle Example

Images going to different corner

+0

Это замечательно, только часть состоит в том, что я не могу использовать гиперссылки с холстом. Угадайте, что это можно сделать с помощью JavaScript. Спасибо за этот ответ. – zmuci

+0

Вы можете добавить события щелчка в [фигуры в кинетическом] (http://www.html5canvastutorials.com/kineticjs/html5-canvas-path-mouseover/), к сожалению, я не смог найти более новую версию кинетического js, который размещен в сети, поэтому я не мог привести вам пример. Мне нравится обрезка css, но выглядит очень полезной – Pete

0

Грубо я этого хотел. Есть еще пара вещей, которые мне не нравятся, но я знаю, как с ними справиться. Спасибо, Радио, указав мне clipping.

http://jsfiddle.net/ojcx4k03/

Смежные вопросы