myal — id элемента.
100 — скорость прокрутки
<script>
$(document).ready(function() {
$('html,body').animate({
scrollTop: $("#myal").offset().top
}, 100);
});
</script>
![]() |
Блог креативного мышленияМысли и записки о текущем мышлении индивидумов |
myal — id элемента.
100 — скорость прокрутки
<script>
$(document).ready(function() {
$('html,body').animate({
scrollTop: $("#myal").offset().top
}, 100);
});
</script>
Сразу скажу, что использовать будем curl.
Суть проста: Отправляем данные на локальный скрипт, который принимает переменную и с помощью curl отправляет их на другой сервер. Получает ответ и выдает его в локальный скрипт.
index.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ru" lang="ru">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
var ajax_url = 'http://newdomain.com/ajax.php';
$(document).ready(function(){
$('#link').click(function(){
$.post
(
"proxy.php",
{
msg: 'wer',
target_id: 'sdf'
},
function(data) {
alert(data);
});
});
});
</script>
</head>
<body>
<a href="#" id="link">post cross domain query</a>
</body>
</html>
Локальный файл, так называемый proxy.php
<?
$url = $_POST['url'];
unset($_POST['url']);
$fields_string = "";
foreach ($_POST as $key => $value)
{
$fields_string .= $key . '=' . $value . '&';
}
rtrim($fields_string, '&');
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, count($_POST));
curl_setopt($ch, CURLOPT_POSTFIELDS, $fields_string);
$result = curl_exec($ch);
curl_close($ch);
?>
Ну и файл на удаленном сервере ajax.php
<?php
error_reporting(0);
header("Content-type: text/plain; charset=utf-8");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Connection: close");
//print_r($_POST);
if (!count($_POST))
die('ERR');
$data = array ();
foreach ($_POST as $k => $v)
$data[] = $k . '=' . $v;
echo implode('&', $data) . "\nHI from " . $_SERVER['SERVER_NAME'] . '!';
exit;
?>
|
|
download: ajax-cross-domain (16.60KB) added: 16/02/2012 clicks: 35 description: |
Сегодня поделюсь своей наработкой по загрузке изображений и последующей сортировке.
Для загрузки есть готовое решение: http://www.uploadify.com/demos/
Вот с помощью неё мы и организовали загрузку, но с маленькими ухищрениями, они нужны были для моих целей.
index.php — основной рабочий файл.
<link href="/uploadify/uploadify.css" type="text/css" rel="stylesheet" />
<script type="text/javascript" src="/uploadify/jquery-1.4.2.min.js"></script>
<script type="text/javascript" src="/uploadify/swfobject.js"></script>
<script type="text/javascript" src="/uploadify/jquery.uploadify.v2.1.4.min.js"></script>
<script type="text/javascript">
$(function() {
$.post
(
"show_gall.php",
{
id : '2'
},
function(data) {
$('#picasso').html(data);
}
);
$('#custom_file_upload').uploadify({
'uploader' : '/uploadify/uploadify.swf',
'script' : '/uploadify/uploadify.php?id=2',
'cancelImg' : '/uploadify/cancel.png',
'folder' : '/uploads',
'multi' : true,
'auto' : true,
'fileExt' : '*.jpg;*.gif;',
'fileDesc' : 'Image Files (.JPG, .GIF)',
'queueID' : 'custom-queue',
'removeCompleted': true,
'onSelectOnce' : function(event,data) {
$('#status-message').text(data.filesSelected + ' files have been added to the queue.');
},
'onAllComplete' : function(event,data) {
$.post
(
"show_gall.php",
{
id : 2
},
function(data) {
$('#picasso').html(data);
}
);
}
}); });
function del(id){
if (id > 0){
$.post
(
"del_img.php",
{
id : id
},
function(data) {
$.post
(
"show_gall.php",
{
id : '2'
},
function(data) {
$('#picasso').html(data);
}
);
}
);
}
}
</script>
<style type="text/css">
#custom-demo .uploadifyQueueItem {
background-color: #FFFFFF;
border: none;
border-bottom: 1px solid #E5E5E5;
font: 11px Verdana, Geneva, sans-serif;
height: 50px;
margin-top: 0;
padding: 10px;
width: 350px;
}
#custom-demo .uploadifyError {
background-color: #FDE5DD !important;
border: none !important;
border-bottom: 1px solid #FBCBBC !important;
}
#custom-demo .uploadifyQueueItem .cancel {
float: right;
}
#custom-demo .uploadifyQueue .completed {
color: #C5C5C5;
}
#custom-demo .uploadifyProgress {
background-color: #E5E5E5;
margin-top: 10px;
width: 100%;
}
#custom-demo .uploadifyProgressBar {
background-color: #0099FF;
height: 3px;
width: 1px;
}
#custom-demo #custom-queue {
border: 1px solid #E5E5E5;
height: 213px;
margin-bottom: 10px;
width: 370px;
} </style>
<div>
<div id="status-message">Select some files to upload:</div>
<div id="custom-queue"></div>
<input id="custom_file_upload" type="file" name="Filedata" /> </div>
</div>
</div>
<div id="picasso">s</div>
В функциях jQuery код, который получает данные из базы о фотках повторяется. Нужно этот код вывести в отдельную функцию.
Теперь, про параметр id: В примере он принимает статическое значение, но на практике оно будет меняться динамически. Это нужно, чтобы фотографии можно было привязать к различным страницам.
Информацию о порядке отображения изображений я буду хранить в базе данных.
CREATE TABLE IF NOT EXISTS `img` ( `id` int(255) NOT NULL AUTO_INCREMENT, `pic` varchar(255) NOT NULL, `pr` int(10) NOT NULL, `parent_id` int(255) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=21 ;
Теперь займемся настройкой файла загрузки изображения.
uploadify/uploadify.php
<?php
if (!empty($_FILES)) {
require '../config/db.php';
$tempFile = $_FILES['Filedata']['tmp_name'];
$targetPath = $_SERVER['DOCUMENT_ROOT'] . $_REQUEST['folder'] . '/'.$_GET['id'].'/';
$targetFile = str_replace('//','/',$targetPath) . $_FILES['Filedata']['name'];
mkdir(str_replace('//','/',$targetPath), 0755, true);
move_uploaded_file($tempFile,$targetFile);
$q = "insert into img set
pic = '".$_FILES['Filedata']['name']."',
parent_id = '".intval($_GET['id'])."',
pr = '0'";
mysql_query($q);
echo str_replace($_SERVER['DOCUMENT_ROOT'],'',$targetFile);
}
?>
С помощью id мы разделяем фотографии с различных страниц в различные папки. Можно вставить еще кроп изображений, проверку на наличие — всё это по вашему вкусу.
Теперь перейдём к отображению и сортировке изображений:
show_gall.php
<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/jquery-ui.min.js"></script>
<!--[if IE]>
<script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<style>
article, aside, figure, footer, header, hgroup,
menu, nav, section { display: block; }
#sortable { list-style-type: none; margin: 0; padding: 0; }
#sortable li { margin: 3px 3px 0 0; padding: 1px; float: left; width: 55px; height: 55px; text-align: center; }
#sortable li img {padding:1px; border:1px solid #ccc; cursor: pointer; width:50px; height:50px;}
.ui-state-default, .ui-widget-content .ui-state-default{border:none; background:none;}
.clear {clear:both;}
</style>
<div id="reorder-gallery">
<ul id="sortable">
<?
require_once 'config/db.php';
$id = (int) $_POST['id'];
$q = "Select * from img where parent_id = '".$id."' order by pr ";
$r = mysql_query($q);
while ($row = mysql_fetch_array($r)){
echo '<li id="'.$row['id'].'"><img src="uploads/'.$row['parent_id'].'/'.$row['pic'].'"/><a href="javascript:;" onClick="del('.$row['id'].');">x</a></li>';
}
?>
</ul>
<div></div>
<script>var imgOrder = '';
$(function() {
$("#sortable").sortable({
update: function(event, ui) {
imgOrder = $("#sortable").sortable('toArray').toString();
$.post
(
"update.php",
{
c : imgOrder
},
function(data) {
}
);
}
});
$("#sortable").disableSelection();
});
$(document).ready(function(){
$("#btnshoworder").click(function(){
alert(imgOrder);
});
});
</script>
Сортировка выполняется с помощью функции jQuery UI sortable(), дальше выполняется обновление в базе порядка сортировки.
|
|
download: sortable_multiupload (231.47KB) added: 09/11/2010 clicks: 362 description: Мультиаплоад и сортировка изображений на лету. |
Столкнулся с задачей, в которой нужно всем изображениям задать Lightbox при клике на него.
Дело в том, что автоматически можно это сделать для изображений с тегом <a>, но в этом случае и все текстовые ссылки в блоке с картинками будут пониматься как картинка.
Предлагаю немного исправленный .js файл лайтбокса с помощью которого можно использовать лайтбокс только к изображениям.
Вызов лайтбокса:
<script type="text/javascript">
$(function() {
$('.content img').lightBox();
});
</script>
Отмечу, что все изображения и текст должны лежать в такой дивке:
<div class="content">
<img src="my_image.gif" alt="" />
</div>
В архиве библиотека лайтбокса.
|
|
download: jquery.lightbox-0.5_achive_to_tag_img.rar (5.11KB) added: 05/10/2010 clicks: 146 description: |
Сегодня хочу выложить у себя в блоге полезный плагин, который даёт возможность из изображения выделить желаемую область и создать из неё маленькую картинку.
Встречаем — jCrop!
Сайт разработчика и демо: http://deepliquid.com/projects/Jcrop/demos.php?demo=thumbnail
А у меня в планах, сделать автоматическое сохранение изображения с помощью Аякса.
Случалось у вас так, что в некоторый момент времени jCarusel перестала прокручивать изображения и просто стоит на одном месте?
Решение простое — нужно увеличить ширину (высоту если вертикальная карусель).
причина — если суммарная ширина картинок больше чем указана ширина контейнера карусели, то скрипт работать не будет.