21.04.2016, 21:57
|
Профессор
|
|
Регистрация: 21.03.2014
Сообщений: 173
|
|
Ренген-эффект.
Как с минимальными энергозатратами сделать сайт с ренген-эффектом? Обязательно с ноутбуком. Вот http://jsfiddle.net/VaAlina/D3tj8/9/ полуфабрикат.
Последний раз редактировалось Blondinka, 05.07.2016 в 15:50.
|
|
22.04.2016, 00:17
|
без статуса
|
|
Регистрация: 25.05.2012
Сообщений: 8,219
|
|
Blondinka,
Наверно саnvas разметки с инверсии цвета, есть плагины для канваса текущего HTML страницы(или части): типо html2canvas
Последний раз редактировалось Deff, 22.04.2016 в 00:20.
|
|
22.04.2016, 11:01
|
Профессор
|
|
Регистрация: 21.03.2014
Сообщений: 173
|
|
Подробней, пожалуйста.
|
|
22.04.2016, 11:11
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,989
|
|
<!DOCTYPE HTML>
<html>
<body>
<img style="filter:invert(100%)" src="http://javascript.ru/forum/images/ca_serenity/misc/logo.gif" title="Javascript.RU">
</body>
</html>
|
|
22.04.2016, 12:59
|
Профессор
|
|
Регистрация: 27.11.2015
Сообщений: 2,899
|
|
Blondinka,
Вот ваша девушка, правда, не с ноутбуком, с рамочкой... из того, что под руку попало. Короче говоря, просто нужна подходящая картинка - покрал ноутбук из первоисточника
<!DOCTYPE html>
<html>
<head>
<title>Untitled Page</title>
<style>
body
{
background: url(http://parallel.ua/f/1/white_grl.jpg) 0 0 no-repeat;
min-width: 750px;
min-height: 760px;
}
#x-ray
{ background: url(http://h-xtech.com/css/laptop-transparent.png) 0 0 no-repeat;
background-size:100%;
position: absolute;
width: 280px;
height: 200px;
}
#screen
{
background: url(http://parallel.ua/f/1/black_grl.jpg) 0 0 no-repeat;
position: relative;
top:10px;
left:40px;
width: 200px;
height: 130px;
}
</style>
<script>
document.onmousemove = function (evt) {
var e = evt || window.event, div = document.getElementById('x-ray');
var scrollX = document.documentElement.scrollLeft || document.body.scrollLeft, scrollY = document.documentElement.scrollTop || document.body.scrollTop
var x = e.clientX + scrollX - 80, y = e.clientY + scrollY - 80;
div.style.left = x + 'px';
div.style.top = y + 'px';
x = x + 40; y = y + 10;
document.getElementById('screen').style.backgroundPosition = '' + -x + 'px ' + -y + 'px';
}
</script>
</head>
<body>
<div id="x-ray">
<div id="screen"></div>
</div>
</body>
</html>
Последний раз редактировалось Dilettante_Pro, 22.04.2016 в 14:15.
|
|
22.04.2016, 13:09
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,123
|
|
Dilettante_Pro,
масштабирования не хватает , фон в примере занимает 100% по ширине. можно уменьшать размер экрана или увеличивать, эффект сохраняет пропорции .
|
|
22.04.2016, 14:15
|
Профессор
|
|
Регистрация: 21.03.2014
Сообщений: 173
|
|
Собственно, сайт из примера делала я. Для выполнения задания воспользовалась библиотекой looking glass. Очень долго возилась со стилями, т.к. при изменении размера экрана рамка смещалась. Хочется понять, как это всё можно оптимизировать, чтоб в следующий раз не переопределять стили через каждые 10px изменения размеров экрана. Находила в интернете решение через модальное окно, но до кода не добралась. Хочется понять, сколько времени занимает создание подобной страницы у другого программиста и как это оптимальней решить, чтоб не было горизонтальных полос прокрутки и смещений, но была рамка.
|
|
22.04.2016, 16:01
|
Профессор
|
|
Регистрация: 27.11.2015
Сообщений: 2,899
|
|
Масштабируемый вариант (здесь не очень видно в динамике - окно просмотра не меняется при resize)
<!DOCTYPE html>
<html>
<head>
<title>Untitled Page</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>
<style>
body
{
background: url(http://parallel.ua/f/1/white_grl.jpg) 0 0 no-repeat;
background-size: 100%;
min-width: 750px;
min-height: 760px;
}
#x-ray
{
background: url(http://h-xtech.com/css/laptop-transparent.png) 0 0 no-repeat;
background-size: 100%;
position: absolute;
width: 280px;
height: 200px;
}
#screen
{
background: url(http://parallel.ua/f/1/black_grl.jpg) 0 0 / 128px 102px no-repeat;
position: relative;
top: 10px;
left: 40px;
width: 200px;
height: 130px;
}
</style>
<script>
$( function() {
$("#x-ray").css({top: "-10px", left: "-40px"});
$(document).trigger("mousemove");
});
document.onmousemove = function (evt) {
var e = evt || window.event, div = document.getElementById('x-ray');
var scrollX = document.documentElement.scrollLeft || document.body.scrollLeft, scrollY = document.documentElement.scrollTop || document.body.scrollTop
var x = e.clientX + scrollX - 80, y = e.clientY + scrollY - 80;
div.style.left = x + 'px';
div.style.top = y + 'px';
x = x + 40; y = y + 10;
document.getElementById('screen').style.backgroundPosition = '' + -x + 'px ' + -y + 'px';
$('#screen').css({ backgroundSize: $(window).width() + "px" });
}
</script>
</head>
<body>
<div id="x-ray">
<div id="screen">
</div>
</div>
</body>
</html>
Последний раз редактировалось Dilettante_Pro, 22.04.2016 в 17:45.
|
|
22.04.2016, 20:07
|
Профессор
|
|
Регистрация: 21.03.2014
Сообщений: 173
|
|
Dilettante_Pro, спасибо. Я пыталась преобразовать код с девушкой, но получалось не то. Не думала, что это можно сделать так лаконично! Как я понимаю, подобный сайт у вас занимает несколько часов.
|
|
22.04.2016, 22:32
|
Профессор
|
|
Регистрация: 27.11.2015
Сообщений: 2,899
|
|
Сообщение от Blondinka
|
Dilettante_Pro, спасибо. Я пыталась преобразовать код с девушкой, но получалось не то. Не думала, что это можно сделать так лаконично! Как я понимаю, подобный сайт у вас занимает несколько часов.
|
Какой же это сайт? Этюд... А по времени -никогда не знаешь заранее, сколько потребуется, иногда на казалось бы ерунде застреваешь. А тот сайт, на который вы сослались вначале - большая серьезная работа, не на несколько часов.
Последний раз редактировалось Dilettante_Pro, 22.04.2016 в 22:49.
|
|
|
|