Как сделать замечательную систему — Твитни, чтобы скачать, с использованием JQuery и CSS
Приветствую Вас, дорогие читатели блога beloweb.ru. Сегодня я хочу рассказать Вам как сделать довольно таки, очень интересную систему — Твитни, чтобы скачать. Что это значит? А это значит то, что мы сегодня будем делать страницу с кнопкой «скачать», которая станет активной только после того как пользователь не твитнит эту самую запись.
Интересно звучит не правда ли? :-) Я знаю, очень интересно и заманчиво, тем более эта система, я уверен, даст Вам не малый прирост твитов.
Хочу сказать, что выражаю огромную благодарность за идею tutorialzine.com
В общем давайте начинать.
Посмотреть пример и скачать
Как это работает?
Эта система не так уж и сложна как кажется на первый взгляд. Нам нужно создать одну html страницу, на которой в действие вступают 2 скрипта. Вот они и активируют кнопку «Скачать» только после того как читатель твитнит ту ссылку, которую Вы захотите.
Правда есть один нюанс — пользователь может не твитнуть запись, а просто закрыть всплывающее окно, и скачать файл. Да, Вы не ослышались, кнопка станет активной. Как этот вопрос решить, я пока что не приложу ума. :-) Но всё равно задумка очень интересная.
Ну, а теперь давайте создавать эту замечательную систему.
HTML
Для начала нам нужно создать одну html страниц. Для примера я её уже создал, и вот как она выглядит:
< !DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>Система - твитни, чтобы скачать</title> <!-- Файл стилей CSS --> <link rel="stylesheet" href="assets/css/styles.css" /> <!--[Для IE 9]> <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script> < ![endif]--> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.0/jquery.min.js"></script> <script src="assets/js/jquery.tweetAction.js"></script> <script src="assets/js/script.js"></script> </head> <body> <header> <h1>Твитни, чтобы скачать</h1> <h2><a href="">« Вернуться на Беловеб</a></h2> </header> <section id="container"> <p>Кнопка <strong>Скачать</strong> станет активной<br />после того ка Вы <a href="#" id="tweetLink">Твитните</a></p> <a href="#" class="downloadButton">Скачать</a> </section> <img src="assets/img/twitter_bird.png" alt="Twitter Bird" /> </body> </html>
Затем задаём нашей странице соответствующие стили CSS:
CSS
/*-------------------------
Отступ
--------------------------*/
*{
margin:0;
padding:0;
}
/*-------------------------
Общие стили
--------------------------*/
html{
background-color:#e4e4e4;
background:url('../img/bg_gradient.jpg') no-repeat center center,url('../img/bg_tile.jpg');
}
body{
color:#888;
padding:10px;
min-height:600px;
font:14px/1.3 'Segoe UI',Arial, sans-serif;
text-shadow: 1px 1px 1px rgba(255, 255, 255, 0.7);
}
a, a:visited {
text-decoration:none;
outline:none;
color:#e35858;
-moz-transition: color 0.3s 0.01s ease;
-o-transition: color 0.3s 0.01s ease;
-webkit-transition: color 0.3s 0.01s ease;
}
a:hover{
text-decoration:underline;
color:#ae4343;
}
/*----------------------------
Хидер и футер
-----------------------------*/
header{
display:block;
}
h1{
height:50px;
text-indent:-99999px;
overflow:hidden;
background:url('../img/h1.png') no-repeat center center;
margin:150px auto 60px;
text-align:center;
}
h2{
font-size: 17px;
font-style: italic;
font-weight: normal;
left: 27px;
position: absolute;
top: 36px;
}
footer{
color: #999999;
font-size: 15px;
line-height: 1.6;
padding: 40px 20px 0;
text-align: center;
display:block;
}
footer b{
color: #888888;
display: block;
font-size: 10px;
font-weight: normal;
}
body > img{
margin:50px auto 0;
display:block;
}
/*----------------------------
Середина
-----------------------------*/
#container{
width:450px;
height:300px;
padding:10px;
text-align:center;
margin:0 auto;
position:relative;
background-color:#fff;
display:block;
-moz-border-radius:10px;
-webkit-border-radius:10px;
border-radius:10px;
}
#container:before,
#container:after{
content:'.';
text-indent:-99999px;
overflow:hidden;
display:block;
height:12px;
width:470px;
background:url('../img/shadows.png') no-repeat center top;
position:absolute;
left:0;
top:-12px;
}
#container:after{
top:auto;
bottom:-12px;
background-position:center bottom;
}
#container p{
font:24px/1.3 'Segoe UI Light','Segoe UI',Arial,sans-serif;
padding: 70px 0 48px;
}
/*----------------------------
Кнопка скачать
-----------------------------*/
a.downloadButton{
display:inline-block;
width:187px;
height:69px;
text-indent:-99999px;
overflow:hidden;
background:url('../img/buttons.png') no-repeat;
cursor:default;
border:none;
text-decoration:none !important;
}
a.downloadButton.active{
background-position:left bottom;
cursor:pointer;
}
Естественно данную страницу Вы можете изменить под Ваш вкус как угодно.
В конечном итоге у нас получилась вот такая страница:

После того как мы создали страницу, будем подробнее рассматривать скрипты.
jquery
Как видите, что мы между тегами <head> и </head> мы прикрепили библиотеку jquery — jquery.min.js с версией 1,6,0. А также ещё 2 скрипта , которые находятся в исходниках:
- jquery.tweetAction.js — этот скрипт вызывает всплывающее окно Твиттера.
- script.js — а этот скрипт активирует кнопку «скачать».
Теперь давайте рассмотрим эти 2 скрипта подробнее.
jquery.min.js
(function($){
var win = null;
$.fn.tweetAction = function(options,callback){
// Параметры по умолчанию для всплывающего окна:
options = $.extend({
url:window.location.href
}, options);
return this.click(function(e){
if(win){
e.preventDefault();
return;
}
var width = 550,
height = 350,
top = (window.screen.height - height)/2,
left = (window.screen.width - width)/2;
var config = [
'scrollbars=yes','resizable=yes','toolbar=no','location=yes',
'width='+width,'height='+height,'left='+left, 'top='+top
].join(',');
// Ссылка на скрипт для всплывающего окна от twitter API:
win = window.open('http://twitter.com/intent/tweet?'+$.param(options),
'TweetWindow',config);
(function checkWindow(){
try{
if(!win || win.closed){
throw "Closed!";
}
else {
setTimeout(checkWindow,100);
}
}
catch(e){
win = null;
callback();
}
})();
e.preventDefault();
});
};
})(jQuery);
Этот скрипт вызывает всплывающее окно привычного для наc Твиттера. Но и это ещё не всё, теперь нам нужно поставить правильную ссылку в всплывающее окно, вернее ту ссылку, которую мы хотим, чтобы твитнул пользователь. А так же мы сможем узнать, кто нас ретвитнул. Всё это делает вот этот скрипт:
script.js
$(document).ready(function(){
$('#tweetLink').tweetAction({
text: 'Как сделать систему - Твитни, чтобы загрузить с jquery', // Заголовок в всплыв. окне
url: '/', //Ссылка на запись
via: 'doublecemik',
related: 'doublecemik'
},function(){
// Кнопка становится активной, когда пользователь закрывает окно:
$('a.downloadButton')
.addClass('active')
.attr('href','http://demo.tutorialzine.com/2011/05/tweet-to-download-jquery/tweet_to_download.zip'); // Ссылка на файл
});
});
Вот этот скрипт нужно изменить под себя:
- В поле text: Пишем свой заголовок, который будет отображаться в всплывающем окне.
- url: Нужно задать ссылку на запись.
- via: и related: здесь нужно написать Ваш логин из твиттера.
- В поле .attr нужно написать ссылку на файл, который пользователи будут скачивать.
Вот пример того, что у меня получилось в всплывающем окне:
Посмотреть пример и скачать
И после того как пользователь твитнит эту запись он сможет скачать мой заветный файл.
Я новичок и всё равно ничего не понял
И такое бывает :-) Скачиваем исходные файлы системы и видим следующее:

index.html — это и есть наша заветная страница html, которую мы создавали Выше.
Далее заходим в папку assets, затем в папку js, и открываем скрипт script.js, например с помощью блокнота. Далее просто редактируем его под свои ссылки и логины из Твиттера. Какие именно поля редактировать, опять же, я описывал выше.
Потом эту страницу вместе с папкой скидываем на Ваш хостинг аккаунт, и радуемся приплыву ретвитов. :-)
Вывод
Друзья, я не могу Вам точно сказать соберёт ли эта система большое количество ретвитов или нет. Но попробовать стоит. Ещё я бы не рекомендовал использовать эту систему для всех файлов на сайте, ну потому что это не практично, и большинство пользователей, скорее всего, отпугнёт. Ну а там возможно я и ошибаюсь.
Вот и всё, друзья. Если у Вас что то не будет получаться или же возникнут какие либо вопросы, Ваши комментарии всегда приветствуются. До скорых встреч.


